package com.service.lx;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.dao.lx.DatetypeDAO;
import com.entity.Datetype;
import com.service.ServiceException;

@Service
@Transactional(rollbackFor = Exception.class)
public class DatetypeService {
	@Autowired
	private DatetypeDAO datetypeDao;
	/**
	 * 添加/修改/逻辑删除
	 * @param datetype
	 * @throws ServiceException
	 */
	public void addAndUpdateDatetype(Datetype datetype) throws ServiceException{
		try {
			Datetype datetype2=datetypeDao.findOne(datetype.getDatetypeId());
			if(datetype2==null){
				datetype.setDatetypeIfdelete(new BigDecimal(1));
			}
			datetype.setDatetypeIntodate(new Date());
			datetypeDao.save(datetype);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ServiceException(e);
		}
	}
	
	/**
	 * 删除
	 * @param datetypeId
	 * @throws ServiceException
	 */
	public void deleteDatetype(Long datetypeId) throws ServiceException{
		try {
			datetypeDao.delete(datetypeId);
		} catch (Exception e) {
			e.printStackTrace();
			throw new ServiceException(e);
		}
	}

	/**
	 * 逻辑删除
	 * @param datetypeId
	 */
	public void UpdateUserIfdelete(Long datetypeId) {
		Datetype datetype = datetypeDao.findOne(datetypeId);
		datetype.setDatetypeIfdelete(new BigDecimal(0));
		addAndUpdateDatetype(datetype);
	}
	
	/**
	 * 批量删除
	 * @param contentIds
	 */
	public void deletArrIfDelete(List<Long> datetypeIdS) {
		if(datetypeIdS != null) {
			for(Long datetypeId: datetypeIdS) {
				Datetype datetype = datetypeDao.findOne(datetypeId);
				datetype.setDatetypeIfdelete(new BigDecimal(0));
				addAndUpdateDatetype(datetype);
			}
		}
	}
	/**
	 * 单条查询
	 * @param datetypeId
	 * @return
	 */
	public Datetype findOne(Long datetypeId) {
		return datetypeDao.findOne(datetypeId);
	}

	/**
	 * 查询：显示的分类
	 * @param complainClassify
	 * @param pagesize 页大小
	 * @return
	 */
	public List<Datetype> findDatetypeClassifyandDatetypeIfopen1(String datetypeClassify) {
		return (List<Datetype>) datetypeDao.queryByDatetypeClassifyandDatetypeIfopen1(datetypeClassify, new PageRequest(0, 100));
	}

	/**
	 * 查询：分类的所有
	 * @param complainClassify
	 * @param pagesize 页大小
	 * @return
	 */
	public List<Datetype> findDatetypeClassifyandDatetype(String datetypeClassify) {
		return (List<Datetype>) datetypeDao.queryByDatetypeClassifyandDatetype(datetypeClassify, new PageRequest(0, 100));
	}

}
